<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var arr = ["孙悟空","猪八戒","沙和尚"];
        var arr2 = ["白骨精","蜘蛛精","兔子"];
        var arr3 = ["白骨","蜘蛛","妞子"];

        /*
        concat()可以连接两个或多个数组，并将数组返回
            该方法不会对原数组产生影响
            返回的值就是处理完成的
        */
        
        var result = arr.concat(arr2,arr3,"牛魔","赵信");

        //console.log(result);
        /*
        join()
            该方法可以将一个数组转换为一个字符串
            该方法不会对原数组产生影响返回的值就是处理完成的
            如果不指定连接符，默认逗号，也可以使用空
        */
        var arr = ["孙悟空","猪八戒","沙和尚"];
        result = arr.join("");

        /*
        reverse()
            该方法用来反转数组(前面的去后面，后面的在前面)
            此方法会修改原数组
        */
        arr.reverse();
        //console.log(arr);
        //console.log(typeof result);

        arr = ["b","d","e","a","c"];
        /*
        sort()
            用来对数组中的元素进行排序
            会影响到原数组，按找编码表排序
        */
        //对于纯数字的数字还是按照编码表排序
        //所以对数字排序可能会获得错误的结果

        //我们可以自己来指定排序的规则
        //我们可以在sort()添加一个回调函数，来指定规则
        //回调函数需要定义两个形参，浏览器将会分别使用数组中的元素作为实参去调用回调函数
        //使用那个元素调用不确定，但是肯定使a 在 b前面
        //浏览器会根据回调函数的返回值来决定元素的顺序
        //  如果的返回值大于0的值，则交换位置
        //  如果返回值小于0，则不变，如果返回0则相等不交换位置
        arr = [3,4,11,2,5,5615,116]
        arr.sort(function(a,b){
            //前面的大
            //升序前面的大返回1，降序就返回-1
            //升序后面的大返回-1，降序就返回1
            // if(a>b){
            //     return 1;
            // }else if(a < b){
            //     return -1;
            // }else{
            //     return 0;
            // }
            //升序
            return a - b;
            //降序
            //return b - a; 
        });
        console.log(arr);
    </script>
</body>
</html>